<?php
/*
896. 单调数列
如果数组是单调递增或单调递减的，那么它是单调的。

如果对于所有 i <= j，A[i] <= A[j]，那么数组 A 是单调递增的。 如果对于所有 i <= j，A[i]> = A[j]，那么数组 A 是单调递减的。

当给定的数组 A 是单调数组时返回 true，否则返回 false。

示例 1：
输入：[1,2,2,3]
输出：true

示例 2：
输入：[6,5,4,4]
输出：true

示例 3：
输入：[1,3,2]
输出：false

示例 4：
输入：[1,2,4,5]
输出：true

输入：[1,1,1]
输出：true


提示：
1 <= A.length <= 50000
-100000 <= A[i] <= 100000

https://leetcode.cn/problems/monotonic-array/

*/

$arr = [6,5,4,4];
print_r((new Solution896())->isMonotonic($arr));

class Solution896
{
    function isMonotonic($nums)
    {
        $len = count($nums);
        $start = $nums[0];
        $end = end($nums);
        if ($start < $end) {
            // 头小于尾，认为是递增的，中间有一个违例就返回false
            for ($i = 0; $i < $len - 1; $i++) {
                if ($nums[$i] > $nums[$i+1]) {
                    return false;
                }
            }
        } else {
            // 头大于尾，认为是递减的，中间有一个违例就返回false
            for ($i = 0; $i < $len - 1; $i++) {
                if ($nums[$i] < $nums[$i+1]) {
                    return false;
                }
            }
        }
        return true;
    }
}
